Augmenting IDEs with Runtime Information for Software Maintenance
نویسنده
چکیده
Object-oriented language features such as inheritance, abstract types, late-binding, or polymorphism lead to distributed and scattered code, rendering a software system hard to understand and maintain. The integrated development environment (IDE), the primary tool used by developers to maintain software systems, usually purely operates on static source code and does not reveal dynamic relationships between distributed source artifacts, which makes it difficult for developers to understand and navigate software systems. Another shortcoming of today’s IDEs is the large amount of information with which they typically overwhelm developers. Large software systems encompass several thousand source artifacts such as classes and methods. These static artifacts are presented by IDEs in views such as trees or source editors. To gain an understanding of a system, developers have to open many such views, which leads to a workspace cluttered with different windows or tabs. Navigating through the code or maintaining a working context is thus difficult for developers working on large software systems. In this dissertation we address the question how to augment IDEs with dynamic information to better navigate scattered code while at the same time not overwhelming developers with even more information in the IDE views. We claim that by first reducing the amount of information developers have to deal with, we are subsequently able to embed dynamic information in the familiar source perspectives of IDEs to better comprehend and navigate large software spaces. We propose means to reduce or mitigate the information by highlighting relevant source elements (HeatMaps), by explicitly representing working context (SmartGroups), and by automatically housekeeping the workspace in the IDE (AutumnLeaves). We then improve navigation of scattered code by explicitly representing dynamic collaboration (Hermion, Senseo, CollView) and software features (FeatureEnv) in the static source perspectives of
منابع مشابه
Exploiting Dynamic Information in IDEs Eases Software Maintenance
The integrated development environment (IDE) is the primary tool used by developers to maintain software systems. The IDE, however, narrowly focuses on the static structure of a system, neglecting dynamic behavior and dynamic relationships between static source artifacts such as classes and methods. Developers often have difficulties to understand the dynamic aspects of a system just based on t...
متن کاملNatural Language in Software Engineering
The large time and effort devoted to software maintenance can be reduced by providing software engineers with software tools that automate tedious, error-prone tasks. However, despite the prevalence of tools such as IDEs, which automatically provide program information and automated support to the developer, there is considerable room for improvement in the existing software tools. The authors’...
متن کاملComparison of Integrated Development Environment (ide) Debugging Tools: Eclipse Vs Netbeans
---------------------------------------------------------------------***--------------------------------------------------------------------Abstract The Integrated Development Environment (IDE) provides many debugging tool to limit coding errors and facilitate error correction. It avoids software failure, reduce development and maintenance cost, improve customer agreement and software quality. ...
متن کاملLearning Python Code Suggestion with a Sparse Pointer Network
To enhance developer productivity, all modern integrated development environments (IDEs) include code suggestion functionality that proposes likely next tokens at the cursor. While current IDEs work well for statically-typed languages, their reliance on type annotations means that they do not provide the same level of support for dynamic programming languages as for statically-typed languages. ...
متن کاملPIE: A Domain-Specific Language for Interactive Software Development Pipelines
Context. Software development pipelines are used for automating essential parts of software engineering processes, such as build automation and continuous integration testing. In particular, interactive pipelines, which process events in a live environment such as an IDE, require timely results for low-latency feedback, and persistence to retain low-latency feedback between restarts. Inquiry. D...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010